package 爪哇.公用;

import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Spliterator;
import java.util.function.UnaryOperator;

public interface 列表<元素类> {

  boolean 添加(元素类 元素);

  void 添加(int 索引, 元素类 元素);

  boolean 添加所有(int 索引, Collection<? extends 元素类> 集);

  boolean 添加所有(Collection<? extends 元素类> 集);

  void 清空();

  boolean 包含(Object 甲);

  boolean 等于(Object o);

  元素类 取(int 索引);

  int 哈希码();

  元素类 置(int 索引, 元素类 元素);

  int 取索引(Object 甲);

  int 取末索引(Object 甲);

  Object[] 转数组();

  <类型> 类型[] 转数组(类型[] 组);

  元素类 删除(int 索引);

  boolean 删除(Object 甲);

  boolean 删除所有(Collection<?> 集);

  boolean 保留所有(Collection<?> 集);

  ListIterator<元素类> 列表迭代器(int 索引);

  ListIterator<元素类> 列表迭代器();

  Iterator<元素类> 迭代器();

  List<元素类> 子列表(int 起索引, int 止索引);

  Spliterator<元素类> 分割迭代器();

  void 替换所有(UnaryOperator<元素类> 操作符);

  void 排序(Comparator<? super 元素类> 比较器);

  int 大小();

  boolean 为空();
}
